package cn.sxt.sys.service;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

import org.activiti.engine.repository.ProcessDefinition;

import cn.sxt.sys.domain.LeaveBill;
import cn.sxt.sys.utils.DataGridView;
import cn.sxt.sys.vo.WorkFlowVo;

public interface WorkFlowService {
	//加载流程部署信息
	DataGridView loadAllProcessDeployment(WorkFlowVo workFlowVo);
	//加载流程定义信息
	DataGridView loadAllProcessDef(WorkFlowVo workFlowVo);
	//保存部署信息
	void addDeployment(InputStream inputStream, String deploymentName);
	//删除部署
	int deleteDeployment(String deploymentId);
	//根据部署id查流程图的 流
	InputStream viewProcessImage(String deploymentId);
	//提交申请
	void startLeaveBillProcess(Integer id);
	//查当前用户的待办任务
	DataGridView queryCurrentUserTask(WorkFlowVo workFlowVo);
	//根据任务id查请假单信息
	LeaveBill queryLeaveBillByTaskId(String taskId);
	//根据任务id查按钮的集合
	List<String> queryOutcomeByTaskId(String taskId);
	//根据任务id查 批注信息
	DataGridView queryCommonsByTaskId(String taskId);
	//根据任务id完成任务 并添加批注信息
	void completeTask(WorkFlowVo workFlowVo);
	//根据任务id查流程定义对象
	ProcessDefinition queryProcessDefinitionByTaskId(String taskId);
	//根据任务id查当前办理任务的坐标
	Map<String, Object> queryCoordinateByTaskId(String taskId);
	//根据请假单id查批注
	DataGridView queryCommonsByLeaveBillId(Integer id);
	//根据当前用户名称查询历史审批记录
	DataGridView queryHistoryTaskByAssignee(WorkFlowVo workFlowVo);
}
